package com.enjoyor.soa.traffic.core.tsms.service;

import java.util.List;
import java.util.Map;

import com.enjoyor.soa.traffic.core.tsms.domain.CommonPlace;
import com.enjoyor.soa.traffic.core.tsms.domain.SchemeInfo;
import com.enjoyor.soa.traffic.util.pojo.Page;

public interface ISchemeInfoService {
	
	public Page getSchemeInfoPage(Page page, String schemeId, String schemeName, String schemeBeginDate,
			String schemeEndDate, String schemeRankId, String schemeStatusId);

	public List<SchemeInfo> getSchemeInfoList(String schemeId, String schemeName, String schemeBeginDate,
			String schemeEndDate, String schemeRankId, String schemeStatusId, Boolean isFull);

    public String insert(SchemeInfo schemeInfo,String personName);
	
	public void update(SchemeInfo schemeInfo,String personName);

	public void delete(String schemeId,String personName);
	
	public Boolean commit(String schemeId,String personName);
	
	public Boolean audit(String schemeId,String schemeStatusId, String checkIdea,String personName);
	
	//修改待执行方案状态；
	public Boolean editSchemeWaitStatus(String executeTaskId, String isWaitExecute, String personName);
	
	//修改执行任务执行状态；
	public Boolean editExecuteTaskStatus(String executeTaskId, String executeStatusId, String executeStatusName, 
			String personName);
	
	//待执行方案信息List查询；
	public List getSchemeInfoForWeek(String schemeId, String schemeBeginDate, String schemeEndDate, String executeStatusId, 
			String driverPoliceId, String beforeLicensePlate);
	
	
	//方案预演初次进入页面，获取对应时间的实行方案信息；
	public List getPreviewSchemeList(String schemeBeginDate, String schemeEndDate, boolean isDetail);
	
	/**
	 * 实际执行开始时间查询
	 * @param taskId 任务编号
	 * @param schemeId 方案编号
	 * @param executeTaskId 执行任务编号
	 * @param executeDate 执行日期
	 * @return
	 */
	public List<Map<String, Object>> getExecuteStatusCollect(String taskId, String schemeId, String executeTaskId, 
			String executeDate);
	
	/**
	 * 执行任务数量统计 
	 * @param taskId 任务编号
	 * @param schemeId 方案编号
	 * @param executeTaskId 执行任务编号
	 * @param executeDate 执行日期
	 * @return
	 */
	public List<Map<String, Object>> getRealExecuteTime(String taskId, String schemeId, String executeTaskId, 
			String executeDate);
	
}
